Termination w.r.t. Q of the following Term Rewriting System could be proven:

Q restricted rewrite system:
The TRS R consists of the following rules:

app2(f, app2(app2(cons, nil), y)) -> y
app2(f, app2(app2(cons, app2(f, app2(app2(cons, nil), y))), z)) -> app2(app2(app2(copy, n), y), z)
app2(app2(app2(copy, 0), y), z) -> app2(f, z)
app2(app2(app2(copy, app2(s, x)), y), z) -> app2(app2(app2(copy, x), y), app2(app2(cons, app2(f, y)), z))

Q is empty.


QTRS
  ↳ DependencyPairsProof

Q restricted rewrite system:
The TRS R consists of the following rules:

app2(f, app2(app2(cons, nil), y)) -> y
app2(f, app2(app2(cons, app2(f, app2(app2(cons, nil), y))), z)) -> app2(app2(app2(copy, n), y), z)
app2(app2(app2(copy, 0), y), z) -> app2(f, z)
app2(app2(app2(copy, app2(s, x)), y), z) -> app2(app2(app2(copy, x), y), app2(app2(cons, app2(f, y)), z))

Q is empty.

Using Dependency Pairs [1,13] we result in the following initial DP problem:
Q DP problem:
The TRS P consists of the following rules:

APP2(f, app2(app2(cons, app2(f, app2(app2(cons, nil), y))), z)) -> APP2(copy, n)
APP2(app2(app2(copy, app2(s, x)), y), z) -> APP2(app2(cons, app2(f, y)), z)
APP2(app2(app2(copy, 0), y), z) -> APP2(f, z)
APP2(f, app2(app2(cons, app2(f, app2(app2(cons, nil), y))), z)) -> APP2(app2(app2(copy, n), y), z)
APP2(app2(app2(copy, app2(s, x)), y), z) -> APP2(app2(copy, x), y)
APP2(app2(app2(copy, app2(s, x)), y), z) -> APP2(cons, app2(f, y))
APP2(app2(app2(copy, app2(s, x)), y), z) -> APP2(f, y)
APP2(app2(app2(copy, app2(s, x)), y), z) -> APP2(copy, x)
APP2(f, app2(app2(cons, app2(f, app2(app2(cons, nil), y))), z)) -> APP2(app2(copy, n), y)
APP2(app2(app2(copy, app2(s, x)), y), z) -> APP2(app2(app2(copy, x), y), app2(app2(cons, app2(f, y)), z))

The TRS R consists of the following rules:

app2(f, app2(app2(cons, nil), y)) -> y
app2(f, app2(app2(cons, app2(f, app2(app2(cons, nil), y))), z)) -> app2(app2(app2(copy, n), y), z)
app2(app2(app2(copy, 0), y), z) -> app2(f, z)
app2(app2(app2(copy, app2(s, x)), y), z) -> app2(app2(app2(copy, x), y), app2(app2(cons, app2(f, y)), z))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

↳ QTRS
  ↳ DependencyPairsProof
QDP
      ↳ DependencyGraphProof

Q DP problem:
The TRS P consists of the following rules:

APP2(f, app2(app2(cons, app2(f, app2(app2(cons, nil), y))), z)) -> APP2(copy, n)
APP2(app2(app2(copy, app2(s, x)), y), z) -> APP2(app2(cons, app2(f, y)), z)
APP2(app2(app2(copy, 0), y), z) -> APP2(f, z)
APP2(f, app2(app2(cons, app2(f, app2(app2(cons, nil), y))), z)) -> APP2(app2(app2(copy, n), y), z)
APP2(app2(app2(copy, app2(s, x)), y), z) -> APP2(app2(copy, x), y)
APP2(app2(app2(copy, app2(s, x)), y), z) -> APP2(cons, app2(f, y))
APP2(app2(app2(copy, app2(s, x)), y), z) -> APP2(f, y)
APP2(app2(app2(copy, app2(s, x)), y), z) -> APP2(copy, x)
APP2(f, app2(app2(cons, app2(f, app2(app2(cons, nil), y))), z)) -> APP2(app2(copy, n), y)
APP2(app2(app2(copy, app2(s, x)), y), z) -> APP2(app2(app2(copy, x), y), app2(app2(cons, app2(f, y)), z))

The TRS R consists of the following rules:

app2(f, app2(app2(cons, nil), y)) -> y
app2(f, app2(app2(cons, app2(f, app2(app2(cons, nil), y))), z)) -> app2(app2(app2(copy, n), y), z)
app2(app2(app2(copy, 0), y), z) -> app2(f, z)
app2(app2(app2(copy, app2(s, x)), y), z) -> app2(app2(app2(copy, x), y), app2(app2(cons, app2(f, y)), z))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.
The approximation of the Dependency Graph [13,14,18] contains 1 SCC with 9 less nodes.

↳ QTRS
  ↳ DependencyPairsProof
    ↳ QDP
      ↳ DependencyGraphProof
QDP
          ↳ QDPOrderProof

Q DP problem:
The TRS P consists of the following rules:

APP2(app2(app2(copy, app2(s, x)), y), z) -> APP2(app2(app2(copy, x), y), app2(app2(cons, app2(f, y)), z))

The TRS R consists of the following rules:

app2(f, app2(app2(cons, nil), y)) -> y
app2(f, app2(app2(cons, app2(f, app2(app2(cons, nil), y))), z)) -> app2(app2(app2(copy, n), y), z)
app2(app2(app2(copy, 0), y), z) -> app2(f, z)
app2(app2(app2(copy, app2(s, x)), y), z) -> app2(app2(app2(copy, x), y), app2(app2(cons, app2(f, y)), z))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.
We use the reduction pair processor [13].


The following pairs can be strictly oriented and are deleted.


APP2(app2(app2(copy, app2(s, x)), y), z) -> APP2(app2(app2(copy, x), y), app2(app2(cons, app2(f, y)), z))
The remaining pairs can at least by weakly be oriented.
none
Used ordering: Combined order from the following AFS and order.
APP2(x1, x2)  =  APP2(x1, x2)
app2(x1, x2)  =  app2(x1, x2)
copy  =  copy
s  =  s
cons  =  cons
f  =  f
nil  =  nil
n  =  n

Lexicographic Path Order [19].
Precedence:
[s, cons] > [nil, n] > copy > f > [APP2, app2]


The following usable rules [14] were oriented:

app2(f, app2(app2(cons, nil), y)) -> y
app2(f, app2(app2(cons, app2(f, app2(app2(cons, nil), y))), z)) -> app2(app2(app2(copy, n), y), z)



↳ QTRS
  ↳ DependencyPairsProof
    ↳ QDP
      ↳ DependencyGraphProof
        ↳ QDP
          ↳ QDPOrderProof
QDP
              ↳ PisEmptyProof

Q DP problem:
P is empty.
The TRS R consists of the following rules:

app2(f, app2(app2(cons, nil), y)) -> y
app2(f, app2(app2(cons, app2(f, app2(app2(cons, nil), y))), z)) -> app2(app2(app2(copy, n), y), z)
app2(app2(app2(copy, 0), y), z) -> app2(f, z)
app2(app2(app2(copy, app2(s, x)), y), z) -> app2(app2(app2(copy, x), y), app2(app2(cons, app2(f, y)), z))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.
The TRS P is empty. Hence, there is no (P,Q,R) chain.